Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

547
Views
El atributo Symfony #[CurrentUser] devuelve nulo
<?php declare(strict_types=1); namespace App\Controller\User; use App\Entity\User; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Annotation\Route; use Symfony\Component\Security\Http\Attribute\CurrentUser; #[Route('/users', name: 'user.')] class UserController extends AbstractController { #[Route(name: 'list')] public function list(#[CurrentUser] ?User $user, Request $request): Response { dd($user->getFirstName()); }

Call to a member function getFirstName() on null

Pero estoy autorizado. En Symfony Profiler, muestra que estoy conectado.

Entorno: PHP 8.0.11 Symfony 5.3.9

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Los detalles correctos sobre la solución son proporcionados por https://stackoverflow.com/users/1144627/will-b El atributo Symfony #[CurrentUser] devuelve nulo

El problema es causado por ParamConvertor habilitado ( sensio/framework-extra-bundle ). No puede resolver el Usuario debido a la falta de definiciones de cómo obtener la Entidad de la base de datos, por lo que establece la variable $user en null debido al #[CurrentUser] ?User $user anulable. Si desea mantener la funcionalidad del convertidor de parámetros y el atributo #[CurrentUser] al mismo tiempo, debe deshabilitar la conversión automática #

 config/packages/sensio_framework_extra.yaml sensio_framework_extra: request: converters: true auto_convert: false

Y defina los parámetros de ruta cada vez manualmente. Fuentes: https://symfony.com/bundles/SensioFrameworkExtraBundle/current/annotations/converters.html https://symfony.com/blog/new-in-symfony-5-2-controller-argument-attributes https:// symfony.com/doc/current/controller/argument_value_resolver.html

Solución para evitar estos problemas: Lea los documentos al 200 % de la escala del navegador.

over 4 years ago · Santiago Trujillo Report

0

si su controlador extiende "AbstractController", puede usar $this->getUser() para obtener el usuario actual.

en su función de lista, no está dando una identificación de usuario ni un $ usuario, por lo que $ usuario es racionalmente nulo

 #[Route('/users', name: 'user.')] class UserController extends AbstractController { #[Route(name: 'list')] public function list( Request $request): Response { dd($this->getUser()->getFirstName()); }
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!